#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>

using namespace std;

int tmp[50010];

int reversePairs(vector<int>& record) {
    return mergesort(record, 0, record.size() - 1);
}

int mergesort(vector<int>& nums, int left, int right)
{
    if (left >= right)   return 0;

    int mid = (left + right) >> 1;
    int ret = 0;
    ret += mergesort(nums, left, mid);
    ret += mergesort(nums, mid + 1, right);

    int cur1 = left, cur2 = mid + 1;
    int i = 0;
    while (cur1 <= mid && cur2 <= right)
    {
        if (nums[cur2] < nums[cur1])
        {
            tmp[i++] = nums[cur1++];
            ret += right - cur2 + 1;
        }
        else
        {
            tmp[i++] = nums[cur2++];
        }
    }

    while (cur1 <= mid)
        tmp[i++] = nums[cur1++];
    while (cur2 <= right)
        tmp[i++] = nums[cur2++];

    for (int i = left; i <= right; ++i)
        nums[i] = tmp[i - left];

    return ret;
}

int main()
{

	return 0;
}